



    
        //  1, 获取 url地址栏中携带的数据信息
        const urlObj = getUrlVal();
        console.log( urlObj );
      
        // 定义变量 存储 res 也就是 ajax请求 响应的商品信息对象数据
        let msgObj;
      
        //  2, 向后端PHP程序发送请求
        $.ajax({
          url:'../server/goods_detail.php',
          type:'post',
          data:{goods_id:urlObj.goods_id},
          dataType: 'json',
          success:res=>{
            console.log(res);
      
            // 将 获取的 res 也就是当前商品信息存储在变量中
            msgObj = res;
      
            // 根据数据动态生成页面内容
            let str = `
            <div class="panel panel-default">
              <div class="panel-heading">
                <h3 class="panel-title">商品详细信息</h3>
              </div>
              <div class="panel-body">
                <div class="media">
                  <div class="media-left">
                    <a href="#">
                      <img class="media-object" src="${res.goods_small_logo}" alt="...">
                    </a> 
                  </div>
                  <div class="media-body">
                    <h4 class="media-heading">${res.goods_name}</h4>
                    <p>
                      <i class="glyphicon glyphicon-yen"></i>
                      <span>${res.goods_price}</span>
                    </p>
                    <div class="btn-group" role="group" aria-label="...">
                      <button type="button" class="btn btn-default">XL</button>
                      <button type="button" class="btn btn-default">L</button>
                      <button type="button" class="btn btn-default">M</button>
                      <button type="button" class="btn btn-default">S</button>
                      <button type="button" class="btn btn-default">XS</button>
                    </div>
                    <p>
                      <a href="javascript:;" class="btn btn-warning btn-lg" role="button">立即购买</a>
                      <a href="javascript:;" name="cart" class="btn btn-danger btn-lg" role="button">加入购物车</a>
                    </p>
                  </div>
                </div>
                <ul class="nav nav-tabs">
                  <li role="presentation" class="active"><a href="#">商品详细信息</a></li>
                  <li role="presentation"><a href="#">商品参数信息</a></li>
                  <li role="presentation"><a href="#">相关商品</a></li>
                </ul>
                <div>
                    ${res.goods_introduce}
                </div>
              </div>
            </div>
            `;
      
            // 将字符串结果写入到标签中
            $('.container').html(str);
          }
        })
      
        //  3, 通过事件委托 给 加入购物车按钮 添加事件
        $('.container').on( 'click' , '[name="cart"]' , function(){
      
          // 先获取 cookie 存储的数据信息
          const cookieObj = myGetCookie();
          // console.log( cookieObj );
      
          // 根据 cookieObj 存储的数据 执行if判断
          if( cookieObj.login === undefined ){
            // 如果 调用 login 键名 获取的结果是 undefined 证明没有登录
            if( window.confirm('您还没有登录,点击确定跳转登录页面') ){
              window.location.href = `./login.html?url=${window.encodeURIComponent(window.location.href)}`;
            }
          }else{
            // 已经有了 login 登录信息 将当前商品的信息添加到购物车数据中 跳转购物车页面
            // 1, 获取 localStorage 中 存储的数据信息 键名是 cart
            // 如果有   cart数据 也就是有购物车信息  是 存储的具体的数据
            // 如果没有 cart数据 也就是没有购物车信息 是 null
            const goodsObj = JSON.parse(localStorage.getItem('cart'));
      
            // 根据 goodsObj 获取的数据结果,执行判断
            if( goodsObj === null ){
              // 没有购物车信息 直接创建购物车信息 添加 当前商品内容
      
              // 给 当前商品信息中添加键值对
              // 购买数量 默认是 1
              msgObj.num = 1;
              // 是否购买结算 默认值 是true
              msgObj.bool = true;
      
              // 设定 localStorage 键值对
              // 以 json字符串形成 存储 数组嵌套对象的数据形式
              localStorage.setItem( 'cart' , JSON.stringify( [ msgObj ] ) );
            }else{
              // 有购物车数据信息
              // 判断 msgObj 数组中 存储的对象 没有 当前商品对象
      
              // 方法1 循环遍历
              let bool = true;
      
              for( let i = 0 ; i <= goodsObj.length-1 ; i++ ){
                // goodsObj是当前 购物车数组 
                // goodsObj[i] 是 对应的 某一个商品
                // goodsObj[i].goods_id 就是 这一个存储的商品的id主键值
                // msgObj.goods_id 是 当前商品的 id主键值
                // 存储的商品 和 当前商品 是同一个商品
                if( goodsObj[i].goods_id === msgObj.goods_id ){
                  // 有当前商品 给 当前商品id主键值相同的数据 num存储的数值累加1
                  goodsObj[i].num++;
                  // 变量赋值 false
                  bool = false;
                  break;
                }
              }
      
              if(bool){
                // 如果 bool 是 true 证明 没有id主键值相等的情况
                // 证明 购物车中没有当前商品
                // 新增当前商品信息
      
                // 给 当前商品信息中添加键值对
                // 购买数量 默认是 1
                msgObj.num = 1;
                // 是否购买结算 默认值 是true
                msgObj.bool = true;
                // 将 当前商品信息 写入 购物车数组中
                goodsObj.push( msgObj );
      
                // 将 添加了 新的对象的数组 , 写入到 cart 键名中
                localStorage.setItem( 'cart' , JSON.stringify( goodsObj ) );
      
              }else{
                // 如果 bool 是 false 证明 有id主键值相等的情况
                // 证明 购物车中 有当前商品
                // 购物车 数据数组 已经 在 循环中修改 购买数量 已经累加1
                // 只需要将 新的 数组 也就是 购买数量累加1的数组
                // 重新 设定给 购物车信息
                localStorage.setItem( 'cart' , JSON.stringify( goodsObj ) );
      
              }
            }
            
            // 设定好购物车信息之后,可以跳转 购物车页面了
            window.location.href = './cart.html';
      
          }
        })